<?php

/**
 * Projeto - Fcapex
 * Class - UserHelper, resposavel por informações na view do usuario logado
 *
 * @author Erick Haendel <erickhaendel@gmailcom>
 * @version 1.0
 * @copyright GPL ₢ 2006, genilhu ltda.
 * @acess public
 * 
 */

APP::uses('User', 'Model');

class UserHelper extends AppHelper {

    var $helpers = array('Html', 'Form', 'Session');
    public $users;
    public function __construct(\View $View, $settings = array())
    {
        parent::__construct($View, $settings);
        $this->users = new User;
    }

    /**
     * UserHelper::getName()
     * 
     * @return String Nome do usuario logado.
     */
    public function Username() {
        $user = $this->Session->read('Auth');
        if (empty($user['User'])) {
            return '';
        } else {
            return $user['User']['username'];
        }
    }

    /**
     * UserHelper::Name()
     * 
     * @return String Nome do usuario logado.
     */
    public function firstName() {
        $user = $this->Session->read('Auth');
        if (empty($user['User'])) {
            return '';
        } else {
            return $user['User']['first_name'];
        }
    }

    /**
     * UserHelper::lastName()
     * 
     * @return String Sobrenome do usuario logado.
     */
    public function lastName() {
        $user = $this->Session->read('Auth');
        if (empty($user['User'])) {
            return '';
        } else {
            return $user['User']['last_name'];
        }
    }

    /**
     * UserHelper::getRole()
     * 
     * @return String Nivel do usuario logado
     */
    public function Role() {
        $user = $this->Session->read('Auth');
        
        if (empty($user['User'])) {
            return '';
        } else {
            return $user['User']['role'];
        }
    }

    /**
     * UserHelper::getEmail()
     * 
     * @return String Email do usuario logado
     */
    public function Email() {
        $user = $this->Session->read('Auth');
        
        if (empty($user['User'])) {
            return '';
        } else {
            return $user['User']['email'];
        }
    }
    
    public function Id(){
        $user = $this->Session->read('Auth');
        
        if (empty($user['User'])) {
            return '';
        } else {
            return $user['User']['id'];
        }
    }

     public function Photo($id = null){
        if( $id == null){
            $user = $this->Session->read('Auth');
            if (empty($user['User'])) {
                return '';
            } else {
                return $user['User']['photo'];
            }
        }
        else{
            $result = $this->users->findById($id);
            return $result['User']['photo'];
        }
    }
    
    /**
     * Obter informação de um determinado usuario passado pelo id
     * @param type $id Identificador do usuario
     * @return type Array com informaçõe de um determinado usuario
     */
    public function AllInfo($id = null){
        $result = $this->users->findById($id);
        return $result['User'];
    }
    
    /**
     * Contador de seguidores
     * @param type $id
     * @return type Int
     */
    public function countFollowing($id = null){
        if($id == null){
            $user = $this->Session->read('Auth');
            $id = $user['User']['id'];
        }
        $result = $this->users->countFollowing($id);
        return $result;
    }
    
    /**
     * CheckFallow
     * Chegar se o usuario segue outro usuario determinado
     */
    public function checkFollowing($id_following){
        $user = $this->Session->read('Auth');
        $result = $this->users->checkFollowing($user['User']['id'],$id_following);
        return $result;
    }

}

?>
